'''
Description: DOSBox运行汇编代码
Author: 天涯过客
Date: 2025-05-16 13:08:28
'''
import subprocess
import os

#获取当前路径上一级
current_path = os.path.abspath(os.path.join(os.getcwd(), os.pardir))
path = current_path+"\\asm"
code_path = current_path+"\\asm\\test.asm"
dosbox_path = current_path+"\\utils\\DOSBox-0.74-3\\DOSBox.exe"

def run_asm_in_dosbox(mode=3):
    # 保存运行的汇编代码到临时文件
        # 构建DOSBox命令
        dosbox_cmd = [
            dosbox_path,                 # DOSBox可执行文件路径
            "-c", f"mount c {path}",  # 挂载临时目录到C盘
            "-c", "c:",                   # 切换到C盘
            "-c", f"run{mode}.bat",              # 执行批处理文件
            "-noconsole",                 # 无控制台窗口（可选）
            "-exit"                       # 执行完后退出DOSBox
        ]

        # 执行命令并捕获输出
        result = subprocess.run(
            dosbox_cmd,
            capture_output=True,
            text=True,
            timeout=30  # 设置超时时间（秒）
        )